package response

// UserTotalTrendResponse 用户总数变化趋势响应
type UserTotalTrendResponse struct {
	Total  int                `json:"total"`
	Series TimeSeriesResponse `json:"-"`
}

// OrderTotalTrendResponse 历史订单数趋势响应
type OrderTotalTrendResponse struct {
	Total            int                `json:"total"`
	IdcName          string             `json:"idcName"`
	TotalOrderAmount float64            `json:"totalOrderAmount"`
	Series           TimeSeriesResponse `json:"-"`
}

// GpuRentedTrendResponse 算力租用数趋势响应
type GpuRentedTrendResponse struct {
	IdcName string             `json:"idcName"`
	Series  TimeSeriesResponse `json:"-"`
}

// GPURentedTop5Response GPU租用排名top5响应
type GPURentedTop5Response struct {
	IDC        string          `json:"idc"`
	TopRentals []GPUModelCount `json:"topRentals"`
}

// GPUIdleTop5Response GPU闲置数量排名top5响应
type GPUIdleTop5Response struct {
	IDC         string          `json:"idc"`
	TopIdleGPUs []GPUModelCount `json:"topIdleGPUs"`
}

// GPUModelDistribution GPU型号分布
type GPUModelDistribution struct {
	IDCName         string          `json:"idcName"`
	TotalGPUCount   int             `json:"totalGpuCount"`
	GPUDistribution []GPUModelCount `json:"gpuDistribution"`
}

// GPUIdcDistributionResponse GPU地域分布
type GPUIdcDistributionResponse struct {
	IDCName         string                     `json:"idcName"`
	TotalGPUCount   int                        `json:"totalGpuCount"`
	GPUDistribution []GeographicalDistribution `json:"gpuDistribution"`
}

type GeographicalDistribution struct {
	RegionName string  `json:"regionName"`
	Count      int     `json:"count"`
	Percentage float64 `json:"percentage"`
}

// SuppliersStatisticsResponse 供应商数据展示
type SuppliersStatisticsResponse struct {
	IDCName              string                `json:"idcName"`
	TotalSuppliers       int                   `json:"totalSuppliers"`
	PlannedSuppliers     int                   `json:"plannedSuppliers"`
	InResidenceSuppliers []InResidenceSupplier `json:"inResidenceSuppliers"`
}

type InResidenceSupplier struct {
	SupplierName    string `json:"supplierName"`
	SupplierAddress string `json:"supplierAddress"`
}
